Tile based media content selection

ABSTRACT

Mechanisms are provided for allowing a user to dynamically manage rich media content in an efficient and effective manner. Tiles including media content, personalized video selections, content pack upgrades, and promotions for featured content are presented to a user. Each tile may include calls to view, purchase, discuss, rate, review, or read about associated content. Tiles may be presented as still images, logos, text, or live video. Multiple tiles may be manipulated using keyboard, mouse, touchpad, and/or touchscreen movements, motions, and gestures. In particular examples, an overlay provided on top of a tile mechanism provides a user with additional navigation and management options.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application is a continuation of U.S. patent application Ser. No.16/382,014, filed Apr. 11, 2019, which is a continuation of U.S. patentapplication Ser. No. 14/522,106, filed Oct. 23, 2014, now U.S. Pat. No.10,261,657, which is a continuation of U.S. patent application Ser. No.13/053,093, filed Mar. 21, 2011, now U.S. Pat. No. 8,887,202, whichclaims priority to Provisional Application No. 61/316,156, filed Mar.22, 2010, the disclosures of which are incorporated by reference intheir entireties.

DESCRIPTION OF RELATED ART

The present disclosure relates to media content management, such asvideo content selection, manipulation, and playback using tile basedmechanisms.

Conventional list based electronic program guides provide users withinformation to allow video content selection. Some electronic programguides provide hundreds or thousands of options including numerouschannels and video on demand clips. However, mechanisms for sortingthrough the options and selecting video content are limited.Consequently, the techniques and mechanisms of the present inventionprovide improved mechanisms to efficiently managing media content usingtile based mechanisms.

OVERVIEW

Mechanisms are provided for allowing a user to dynamically manage richmedia content in an efficient and effective manner. Tiles includingmedia content, personalized video selections, content pack upgrades, andpromotions for featured content are presented to a user. Each tile mayinclude calls to view, purchase, discuss, rate, review, or read aboutassociated content. Tiles may be presented as still images, logos, text,or live video. Multiple tiles may be manipulated using keyboard, mouse,touchpad, and/or touchscreen movements, motions, and gestures. Inparticular examples, an overlay provided on top of a tile mechanismprovides a user with additional navigation and management options.

These and other features of the present invention will be presented inmore detail in the following specification of the invention and theaccompanying figures, which illustrate by way of example the principlesof the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The disclosure may best be understood by reference to the followingdescription taken in conjunction with the accompanying drawings, whichillustrate particular embodiments of the present invention.

FIG. 1 illustrates a particular example of a network that can use thetechniques and mechanisms of the present invention.

FIG. 2 illustrates a particular example of a content delivery system.

FIG. 3 illustrates a particular example of a tile based media contentdelivery mechanism.

FIGS. 4 and 5 illustrate examples of live channel navigation.

FIGS. 6 and 7 illustrate examples of on-demand or clip navigation.

FIGS. 8 and 9 illustrate examples of overlays.

FIG. 10 illustrates a technique for tile based media content delivery.

FIG. 11 illustrates an example of a computer system that can be used toimplement various embodiments.

DESCRIPTION OF PARTICULAR EMBODIMENTS

Reference will now be made in detail to some specific examples of theinvention including the best modes contemplated by the inventors forcarrying out the invention. Examples of these specific embodiments areillustrated in the accompanying drawings. While the invention isdescribed in conjunction with these specific embodiments, it will beunderstood that it is not intended to limit the invention to thedescribed embodiments. On the contrary, it is intended to coveralternatives, modifications, and equivalents as may be included withinthe spirit and scope of the invention as defined by the appended claims.

For example, the techniques of the present invention will be describedin the context of particular devices such as mobile devices. However, itshould be noted that the techniques and mechanisms of the presentinvention can be used with a variety of devices including generalcomputing devices. In the following description, numerous specificdetails are set forth in order to provide a thorough understanding ofthe present invention. The present invention may be practiced withoutsome or all of these specific details. In other instances, well knownprocess operations have not been described in detail in order not tounnecessarily obscure the present invention.

Various techniques and mechanisms of the present invention willsometimes be described in singular form for clarity. However, it shouldbe noted that some embodiments include multiple iterations of atechnique or multiple instantiations of a mechanism unless notedotherwise. For example, a processor is used in a variety of contexts.However, it will be appreciated that multiple processors can also beused while remaining within the scope of the present invention unlessotherwise noted. Furthermore, the techniques and mechanisms of thepresent invention will sometimes describe two entities as beingconnected. It should be noted that a connection between two entitiesdoes not necessarily mean a direct, unimpeded connection, as a varietyof other entities may reside between the two entities. For example, aprocessor may be connected to memory, but it will be appreciated that avariety of bridges and controllers may reside between the processor andmemory. Consequently, a connection does not necessarily mean a direct,unimpeded connection unless otherwise noted.

Selecting video content on a device such as a mobile phone or a portablecomputing device can often be inefficient. In many instances,subscription packages provide hundreds of channels and thousands ofvideo on demand clips. It is difficult for a user to identifyinteresting or exciting content. In some instances, electronic programguides can organize content by category, such as dramas, sports, ormovies and provide the content in numerically ordered channel listings.In some other instances, popular programs or award winning content isflagged for a user. Electronic program guides may also be filtered. Insome examples, non-family oriented programming is filtered based on userselection.

However, providing thousands of channels and video clips to a userresults in a large of amount of information and choices. Thisinformation may be shown in a part of a display or condensed onto adevice screen. The information may scroll automatically or may scrollafter user input. In many instances, channels and video clips may belisted in numerical order or alphabetical order. In either case, ittakes a tremendous amount of time to sift through content, and evenafter viewing the entries, a user still may have insufficientinformation to make an intelligent selection.

Consequently, the techniques and mechanisms of the present inventionpresent a tile based mechanism for displaying content for user selectionand management. A user can efficiently view options. Tiles may bepersonalized for a particular user based on user preferences, usercharacteristics, social networking buzz, popularity, ratings, etc. Tilesmay correspond not only to particular channels or programs, but maycorrespond with purchase offers, information, series information,premium subscription offers, etc. Each tile may have multiple selectionoptions including in application purchase, archive program viewing,additional content viewing, etc. Tiles themselves may be still images,icons, logos, or live channel feeds. Using the live channel as abackground, a lightweight menu-driven navigation system can be used toposition an overlay indicator to select video content. Alternatively,numeric or text based navigation schemes could also be used.

According to particular embodiments, tiles include video content such aslive video content, looped clip content, trailers, advertisements, etc.Tiles may also include user selected live channels of both live andon-demand or clip content. The live content and clip streams can bearranged in a variety of visual patterns. In particular examples, tilesare dynamically changing based on popularity and viewership information.

Tiles can be displayed on a user device in an efficient and effectivemanner According to particular embodiments, a relatively lightweightclient side application provides an interface for a user to navigatetiles. In some examples, a tile may allow navigation to numerous othertiles. In particular examples, numeric or text selection mechanisms canbe provided to select channel content. For example, particular numericor text codes can be mapped to particular streams displayed in tiles.

FIG. 1 is a diagrammatic representation showing one example of a networkthat can use the techniques of the present invention. According tovarious embodiments, media content is provided from a number ofdifferent sources 185. Media content may be provided from filmlibraries, cable companies, movie and television studios, commercial andbusiness users, etc. and maintained at a media aggregation server 161.Any mechanism for obtaining media content from a large number of sourcesin order to provide the media content to mobile devices in livebroadcast streams is referred to herein as a media content aggregationserver. The media content aggregation server 161 may be clusters ofservers located in different data centers. According to variousembodiments, content provided to a media aggregation server 161 isprovided in a variety of different encoding formats with numerous videoand audio codecs. Media content may also be provided via satellite feed187.

An encoder farm 171 is associated with the satellite feed 187 and canalso be associated with media aggregation server 161. The encoder farm171 can be used to process media content from satellite feed 187 as wellas possibly from media aggregation server 161 into potentially numerousencoding formats. According to various embodiments, file formats includeopen standards MPEG-1 (ISO/IEC 11172), MPEG-2 (ISO/IEC 13818-2), MPEG-4(ISO/IEC 14496), as well as proprietary formats QuickTime™,ActiveMovie™, and RealVideo™. Some example video codecs used to encodethe files include MPEG-4, H.263, and H.264. Some example audio codecsinclude Qualcomm Purevoice™ (QCELP), The Adaptive Multi-Narrow Band(AMR-NB), Advanced Audio coding (AAC), and AACPlus. The media contentmay also be encoded to support a variety of data rates. The mediacontent from media aggregation server 161 and encoder farm 171 isprovided as live media to a streaming server 175. In one example, thestreaming server is a Real Time Streaming Protocol (RTSP) server 175.Media streams are broadcast live from an RTSP server 175 to individualclient devices 101. A variety of protocols can be used to send data toclient devices.

Possible client devices 101 include personal digital assistants (PDAs),cellular phones, personal computing devices, personal computers etc.According to various embodiments, the client devices are connected to acellular network run by a cellular service provider. In other examples,the client devices are connected to an Internet Protocol (IP) network.Alternatively, the client device can be connected to a wireless localarea network (WLAN) or some other wireless network. Live media streamsprovided over RTSP are carried and/or encapsulated on one of a varietyof wireless networks.

The client devices are also connected over a wireless network to a mediacontent delivery server 131. The media content delivery server 131 isconfigured to allow a client device 101 to perform functions associatedwith accessing live media streams. For example, the media contentdelivery server allows a user to create an account, perform sessionidentifier assignment, subscribe to various channels, log on, accessprogram guide information, obtain information about media content, etc.According to various embodiments, the media content delivery server doesnot deliver the actual media stream, but merely provides mechanisms forperforming operations associated with accessing media. In otherimplementations, it is possible that the media content delivery serveralso provides media clips, files, and streams. The media contentdelivery server is associated with a guide generator 151. The guidegenerator 151 obtains information from disparate sources includingcontent providers 181 and media information sources 183. The guidegenerator 151 provides program guides to database 155 as well as tomedia content delivery server 131 to provide to client devices 101.

According to various embodiments, the guide generator 151 obtainsviewership information from individual client devices. In particularembodiments, the guide generation 151 compiles viewership information inreal-time in order to generate a most-watched program content. Theclient device 101 can request program guide information and themost-watched program guide content can be provided to the client device101 to allow efficient selection of video content. According to variousembodiments, guide generator 151 is connected to a media contentdelivery server 131 that is also associated with an abstract buy engine141. The abstract buy engine 141 maintains subscription informationassociated with various client devices 101. For example, the abstractbuy engine 141 tracks purchases of premium packages.

The media content delivery server 131 and the client devices 101communicate using requests and responses. For example, the client device101 can send a request to media content delivery server 131 for asubscription to premium content. According to various embodiments, theabstract buy engine 141 tracks the subscription request and the mediacontent delivery server 131 provides a key to the client device 101 toallow it to decode live streamed media content. Similarly, the clientdevice 101 can send a request to a media content delivery server 131 fora most-watched program guide for its particular program package. Themedia content delivery server 131 obtains the guide data from the guidegenerator 151 and associated database 155 and provides appropriate guideinformation to the client device 101.

Although the various devices such as the guide generator 151, database155, media aggregation server 161, etc. are shown as separate entities,it should be appreciated that various devices may be incorporated onto asingle server. Alternatively, each device may be embodied in multipleservers or clusters of servers. According to various embodiments, theguide generator 151, database 155, media aggregation server 161, encoderfarm 171, media content delivery server 131, abstract buy engine 141,and streaming server 175 are included in an entity referred to herein asa media content delivery system.

FIG. 2 is a diagrammatic representation showing one example of a mediacontent delivery server 291. According to various embodiments, the mediacontent delivery server 291 includes a processor 201, memory 203, and anumber of interfaces. In some examples, the interfaces include a guidegenerator interface 241 allowing the media content delivery server 291to obtain program guide information. The media content delivery server291 also can include a program guide cache 231 configured to storeprogram guide information and data associated with various channels. Themedia content delivery server 291 can also maintain static informationsuch as icons and menu pages. The interfaces also include a carrierinterface 211 allowing operation with mobile devices such as cellularphones operating in a particular cellular network. The carrier interfaceallows a carrier vending system to update subscriptions. Carrierinterfaces 213 and 215 allow operation with mobile devices operating inother wireless networks. An abstract buy engine interface 243 allowscommunication with an abstract buy engine that maintains subscriptioninformation.

An authentication module 221 verifies the identity of mobile devices. Alogging and report generation module 253 tracks mobile device requestsand associated responses. A monitor system 251 allows an administratorto view usage patterns and system availability. According to variousembodiments, the media content delivery server 291 handles requests andresponses for media content related transactions while a separatestreaming server provides the actual media streams. In some instances, amedia content delivery server 291 may also have access to a streamingserver or operates as a proxy for a streaming server. But in otherinstances, a media content delivery server 291 does not need to have anyinterface to a streaming server. In typical instances, however, themedia content delivery server 291 also provides some media streams. Themedia content delivery server 291 can also be configured to providemedia clips and files to a user in a manner that supplements a streamingserver.

Although a particular media content delivery server 291 is described, itshould be recognized that a variety of alternative configurations arepossible. For example, some modules such as a report and logging module253 and a monitor 251 may not be needed on every server. Alternatively,the modules may be implemented on another device connected to theserver. In another example, the server 291 may not include an interfaceto an abstract buy engine and may in fact include the abstract buyengine itself. A variety of configurations are possible.

FIG. 3 illustrates a particular example of a tile based media contentdelivery system. According to particular embodiments, a display isconfigured to show multiple tiles. According to various embodiments, thetile based delivery system includes a navigation bar with home, livechannels, on demand, power, and help buttons at 301. Multiple tiles areshown in row 303. According to various embodiments, each tile maycorrespond to a particular program, channel, purchase offer, event, etc.In particular embodiments, each tile includes multiple options topurchase, select, view, download, review, rate, or discuss the content.In some examples, the tiles are scrollable using a side swipe gesture,keypad controls, numeric or text entry, etc. The tiles may be selectedfor each particular user based on user characteristics, userpreferences, viewing history, purchase history, interests, real-timepopularity, social network buzz, social network recommendations, etc. Inother examples, tile placement is bid upon and/or purchased by contentproviders and advertisers, to allow presentation of selected content toviewers. In still other examples, content providers and advertisers canbid to place tiles in preferred positions for particular demographicgroups or subscriber groups.

According to various embodiments, channel and network logos arepresented at 305. Channel and network logos may similarly be scrollableand presented based on viewing history, user preferences, real-timepopularity, social network buzz, etc.

Each channel may show live or prerecorded content. In some exampleschannel and network logos are still images or logos. In other examples,the channel and network logos are live video streams. According toparticular embodiments, the live video streams shown in portion 305 arenot generated by an end device receiving multiple video streams andaggregating the streams onto a single display section. Although this maybe possible, this would consume a large amount of bandwidth andprocessing resources. Some devices do not have the ability to rendermultiple video feeds. According to particular embodiments, the videostream is generated by a server associated with a content or serviceprovider. The content or service provider provides multiple videostreams to an end user by aggregating them into a single stream fordisplay in section 305.

Selecting or clicking on various tiles will show content or optionsincluding in application purchase options, upgrade options, subscriptionoptions, content selection options, content review or discussionoptions, etc. In some examples, clicking on a tile will display allepisodes available for a particular program. It should be noted that avariety of tile and menu arrangements are possible. The navigationcontrol can also slide off the screen when media content is beingviewed.

FIG. 4 illustrates an example of live channel viewing. A live channelcan be selected using multiple mechanisms, including selecting a logo orgenerating a list or searchable list of channels. Selecting livechannels at 401 provides a listing of channels currently available.Selecting on a particular channel at 403 or 405 displays what iscurrently being played on the particular channel. In some examples,clicking on the content being played shows a full screen view of thecontent at 407. In other examples, navigation controls slide off thescreen automatically after a predetermined period of time, such as 5seconds. A user can tap the screen again at 409 to expose the navigationstrips.

FIG. 5 illustrates a mechanism for browsing live channels. According tovarious embodiments, a user can elect to see upcoming programming at 501as well as opt to see a preview at 503 or hide a preview at 505.

FIG. 6 illustrates a mechanism for browsing on demand content from atile. A user can select a tile identifying a program at 601 to displaydifferent portions of the program or different episodes of the program.In particular embodiments, selecting a portion, segment, or episode at603 begins playback of the episode. The episode can also be expanded orcontracted at 605 and 607.

FIG. 7 illustrates a mechanism for browsing on demand content from amenu. A user can elect to show a menu view at 701 or a playback view at703. The user can also select to show different pieces of program countat 705, a portion or episode listing at 707, or portion or episodeinformation at 709. The user can also elect to play an episode at 711.

FIG. 8 illustrates a mechanism for browsing on demand genres. A user canselect on demand content at 801 and select a particular on demand genreat 803 and 805. The on demand genre presents a listing of on demandcontent at 807.

FIG. 9 illustrates interactive overlays. A user can select an overlay todisplay more information about a particular episode at 901, a particularprogram at 905, or a particular channel at 903. According to particularembodiments, a client side application provides overlays correspondingto particular tile mechanisms. Overlays may be partially or completelytransparent, allowing a user to interact with a tile view. Overlays maybe generated or predefined. In particular examples, a device receivesmapping information from a provider and shows a display with overlayselection boxes. According to particular embodiments, a user navigatesthe overlay selection boxes and selects options by identifying aparticular overlay selection such as overlay selection. The overlayselection boxes may be arranged in a variety of visual patterns. Inparticular examples, an overlay highlights a particular video channelwhen selected. Selecting the channel in overlay selection results in achannel change to allow viewing of the corresponding video content.According to particular embodiments, the overlay has the ability tosupport customized advertising on channels.

FIG. 10 illustrates one example of a technique for present tile basedmedia. At 1001, a server and/or device receives media contentinformation from multiple content providers. The media contentinformation may identify movies, live programming, television shows,advertisements, clips, videos, audio, etc. The media content informationmay also include information about the media content, live discussionabout the media content, associated social networking feeds, comments,ratings, etc. At 1003, user characteristics information is identified.User characteristics may include demographic information, viewinghistory, preferences, interests, device capabilities, etc. According tovarious embodiments, a piece of content is selected using the usercharacteristics information at 1005. The piece of content may correspondto an estimation of what the user would be interested in viewing at aparticular time.

In some examples, content providers may provide incentives to a serverentity, device, or application provider to place particular content inhighlighted areas. For example, a content provider may incentivizeplacement of a pay per view sports program as a first tile that a userwould view upon launching an application. The content delivery provider,application provider, or device provider would receive a particular sumin return for presentation of that particular first tile. According tovarious embodiments, a tile corresponding to a piece of content isgenerated at 1007. The tile may include images, video, text, data, etc.At 1009, selections options for navigating to the piece of contentitself, viewing information about the content, discussing the content,reviewing the content, finding associated content, viewing episodeinformation, etc. is provided. At 1011, the tile is presented to theuser. According to various embodiments, multiple tiles are generated andpresented to the user simultaneously.

For example, a FIG. 11 provides one example of a system that can be usedto implement one or more mechanisms. According to particular exampleembodiments, a system 1100 suitable for implementing particularembodiments of the present invention includes a processor 1101, a memory1103, an interface 1111, and a bus 1115 (e.g., a PCI bus). When actingunder the control of appropriate software or firmware, the processor1101 is responsible for such tasks such as pattern generation. Variousspecially configured devices can also be used in place of a processor1101 or in addition to processor 1101. The complete implementation canalso be done in custom hardware. The interface 1111 is typicallyconfigured to send and receive data packets or data segments over anetwork. Particular examples of interfaces the device supports includehost bus adapter (HBA) interfaces, Ethernet interfaces, frame relayinterfaces, cable interfaces, DSL interfaces, token ring interfaces, andthe like.

In addition, various very high-speed interfaces may be provided such asfast Ethernet interfaces, Gigabit Ethernet interfaces, ATM interfaces,HSSI interfaces, POS interfaces, FDDI interfaces and the like.Generally, these interfaces may include ports appropriate forcommunication with the appropriate media. In some cases, they may alsoinclude an independent processor and, in some instances, volatile RAM.The independent processors may control such communications intensivetasks as data synthesis.

According to particular example embodiments, the system 1100 uses memory1103 to store data, algorithms and program instructions. The programinstructions may control the operation of an operating system and/or oneor more applications, for example. The memory or memories may also beconfigured to store received data and process received data.

Because such information and program instructions may be employed toimplement the systems/methods described herein, the present inventionrelates to tangible, machine readable media that include programinstructions, state information, etc. for performing various operationsdescribed herein. Examples of machine-readable media include, but arenot limited to, magnetic media such as hard disks, floppy disks, andmagnetic tape; optical media such as CD-ROM disks and DVDs;magneto-optical media such as optical disks; and hardware devices thatare specially configured to store and perform program instructions, suchas read-only memory devices (ROM) and random access memory (RAM).Examples of program instructions include both machine code, such asproduced by a compiler, and files containing higher level code that maybe executed by the computer using an interpreter. Computer readablestorage media refer to physical and tangible media such as disks, solidstate memory, and persistent storage and excludes carrier waves.

Although the foregoing invention has been described in some detail forpurposes of clarity of understanding, it will be apparent that certainchanges and modifications may be practiced within the scope of theappended claims. Therefore, the present embodiments are to be consideredas illustrative and not restrictive and the invention is not to belimited to the details given herein, but may be modified within thescope and equivalents of the appended claims.

The invention claimed is:
 1. A method comprising: generating for displaya first screen, the first screen comprising a first selectable optionand a second selectable option; in response to selection of the firstselectable option, generating for display a second screen, the secondscreen comprising a third selectable option; in response to selection ofthe second selectable option, generating for display a third screen, thethird screen comprising a fourth selectable option and a partial screenview of a media content item; in response to selection of the thirdselectable option, generating for display the third screen; and inresponse to selection of the fourth selectable option, generating fordisplay a fourth screen, the fourth screen comprising a full screen viewof the media content item.
 2. The method of claim 1, comprising: inresponse to display of the third screen for a predetermined amount oftime, generating for display the fourth screen.
 3. The method of claim1, wherein generating for display the fourth screen further comprisesmodifying display of the third screen by: removing display of the fourthselectable option; and expanding the partial screen view of the mediacontent item to a full screen view of the media content item.
 4. Themethod of claim 1, further comprising: selecting the media content itemfrom a plurality of available media content items; and generating fordisplay a first tile corresponding to the selected media content item;wherein the first selectable option and the second selectable option areassociated with the first tile.
 5. The method of claim 4, whereinselecting the media content item from a plurality of available mediacontent items further comprises: accessing user characteristicsinformation; retrieving, from the user characteristics information, aplurality of pieces of information comprising demographic information,viewing history, preferences, interests, and device capabilities; andselecting the media content item based at least in part on at least oneof the plurality of pieces of information.
 6. The method of claim 4,wherein selecting the media content item from a plurality of mediacontent items further comprises: accessing social network information;and selecting the media content item based at least in part on thesocial network information.
 7. The method of claim 1, wherein the mediacontent item is a television program.
 8. The method of claim 1, whereinthe media content item is a commercial.
 9. The method of claim 1,further comprising receiving media content information corresponding tothe plurality of available media content items.
 10. The method of claim9, wherein the media content information further corresponds to aplurality of on demand videos.
 11. A system comprising: input/outputcircuitry; and control circuitry configured to: generate for display afirst screen, the first screen comprising a first selectable option anda second selectable option; in response to receiving selection, usingthe input/output circuitry, of the first selectable option, generate fordisplay a second screen, the second screen comprising a third selectableoption; in response to selection, using the input/output circuitry, ofthe second selectable option, generate for display a third screen, thethird screen comprising a fourth selectable option and a partial screenview of a media content item; in response to receiving selection, usingthe input/output circuitry, of the third selectable option, generate fordisplay the third screen; and in response to receiving selection, usingthe input/output circuitry, of the fourth selectable option, generatefor display a fourth screen, the fourth screen comprising a full screenview of the media content item.
 12. The system of claim 11, wherein thecontrol circuitry is further configured to: in response to display ofthe third screen for a predetermined amount of time, generate fordisplay the fourth screen.
 13. The system of claim 11, wherein thecontrol circuitry configured to generate for display the fourth screenis further configured to modify display of the third screen by: removingdisplay of the fourth selectable option; and expanding the partialscreen view of the media content item to a full screen view of the mediacontent item.
 14. The system of claim 11, wherein the control circuitryis further configured to: select the media content item from a pluralityof available media content items; and generate for display a first tilecorresponding to the selected media content item; wherein the firstselectable option and the second selectable option are associated withthe first tile.
 15. The system of claim 14, wherein the controlcircuitry configured to select the media content item from a pluralityof available media content items is further configured to: access usercharacteristics information; retrieve, from the user characteristicsinformation, a plurality of pieces of information comprising demographicinformation, viewing history, preferences, interests, and devicecapabilities; and select the media content item based at least in parton at least one of the plurality of pieces of information.
 16. Thesystem of claim 14, wherein selecting the media content item from aplurality of media content items further comprises: accessing socialnetwork information; and selecting the media content item based at leastin part on the social network information.
 17. The system of claim 11,wherein the media content item is a television program.
 18. The systemof claim 11, wherein the media content item is a commercial.
 19. Thesystem of claim 11, further comprising receiving media contentinformation corresponding to the plurality of available media contentitems.
 20. The system of claim 19, wherein the media content informationfurther corresponds to a plurality of on demand videos.